package cn.s1995.sloth.pay.biz.handler;

import java.util.Map;

/**
 * BizPayNotifyCallBackHandler
 *
 * @author Lex
 * @description
 * @date 2024/01/06 01:21
 */
public interface BizPayNotifyCallbackHandler {


    /**
     * 初始化执行
     * @param params
     */
    void before(Map<String, Object> params);

    /**
     * 去重处理
     * @param params 回调报文
     * @return
     */
    Boolean duplicateChecker(Map<String, Object> params);

    /**
     * 验签逻辑
     * @param params 回调报文
     * @return
     */
    Boolean verifyNotify(Map<String, Object> params);

    /**
     * 解析报文
     * @param params
     * @return
     */
    String parse(Map<String, Object> params);

    /**
     * 调用入口
     * @param params
     * @return
     */
    String handle(Map<String, Object> params);

    /**
     * 保存回调记录
     * @param result 处理结果
     * @param params 回调报文
     */
    void saveNotifyRecord(Map<String, Object> params, String result);
}
